package com.zpark;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;

/**
 * @PackageName: com.zpark
 * @ClassName: JsoupDemo01
 * @Description: Jsoup快速入门
 * @author: RZS
 * @date: 2021/8/13  21:21
 */
public class JsoupDemo01 {
    /**
     * xml常见的解析器:
     *      1.JAXP : sun公司提供的解析器，支持dom和sax两种思想
     *      2. DOM4 :一款非常优秀的解析器
     *      3，soup : jsoup是一款rava 的HTML解析器，可直接解析某个URL地址、HTML文本内容。
     *          它提供了一套非常省力的API，可通过DON，css以及类似于jQuery的操作方法来取出
     *          和操作数据。
     *      4. PULL : Android操作系统内置的解析器，sax方式的。
     *
     *  soup : jsoup是一款Java的HTML解析器，可直接解析某个URL地址、HTNL文本内容。
     *      它提供了一套非常省力的API，可通过Dow ,.css及类似于joery的操作方法来取出和操作数据。
     */
    public static void main(String[] args) throws IOException {
        // 1、获取document对象，工具xml文档获取
        // 1.1、获取xml文件路径
        String path = JsoupDemo01.class.getClassLoader().getResource("users.xml").getPath();
        path = URLDecoder.decode(path, "UTF-8");//如果路径中带有中文会被URLEncoder,因此这里需要解码
        // 1.2、解析xml文件，加载文件到内存中，获取dom树document
        Document document = Jsoup.parse(new File(path), "utf-8");

        // 2、获取元素对象 element对象
        Elements elements = document.getElementsByTag("name");
        // 将获取结果打印出来
        for (Element element : elements) {
            System.out.println(element.html());
            System.out.println(element.text());
        }

    }
}
